{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f07a8471-3840-48aa-a7ba-2b9777b710a2",
   "metadata": {},
   "source": [
    "$$\n",
    "\\begin{split}\n",
    "&\\sigma(x) = \\frac{1}{1 + e^{-x}}\\\\\n",
    "&\\sigma'(x) = \\sigma(x) \\cdot (1 - \\sigma(x))\n",
    "\\end{split}\n",
    "$$\n",
    "\n",
    "- 梯度集中在 0 附近，`[-3, 3]`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3ebecb9d-36cd-4b06-87e4-7352600b678f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-03T03:13:21.983896Z",
     "iopub.status.busy": "2024-11-03T03:13:21.983657Z",
     "iopub.status.idle": "2024-11-03T03:13:21.989685Z",
     "shell.execute_reply": "2024-11-03T03:13:21.988741Z",
     "shell.execute_reply.started": "2024-11-03T03:13:21.983880Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "# Set the style for seaborn\n",
    "sns.set_theme()\n",
    "\n",
    "# Define the sigmoid function and its gradient\n",
    "def sigmoid(x):\n",
    "    return 1 / (1 + np.exp(-x))\n",
    "\n",
    "def sigmoid_grad(x):\n",
    "    s = sigmoid(x)\n",
    "    return s * (1 - s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5fb5413b-2668-4508-827c-ad56801b9249",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-03T03:13:32.900345Z",
     "iopub.status.busy": "2024-11-03T03:13:32.899912Z",
     "iopub.status.idle": "2024-11-03T03:13:33.171623Z",
     "shell.execute_reply": "2024-11-03T03:13:33.169939Z",
     "shell.execute_reply.started": "2024-11-03T03:13:32.900313Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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061bN65evcprr72G1WqlWrVqub72mTNniIiIoHz58kycOJGgoCB++eUXpk2bRlxcXOb+mGHOnDk0bdqUd955h6SkJGbPnk1kZCRbt25Fo9Hw+uuv89prr3Hx4sXMHwMlmiKKvdjYWGXQoEFKSEiIEhISotSrV08ZOHCgsmTJEiUpKclu2SFDhihDhgzJfLx69WolJCRE2bVrl91yr732mhISEqJ8/fXXmWUTJ05UQkJClP/7v//LLDOZTEqrVq2UkJAQ5dixY5nlcXFxSp06dZQZM2Zklo0fP16pX7++cvnyZbvXeuaZZ5RGjRopBoNBURRFuXjxYpbXfuyxx5SwsDAlLS0tsywxMVFp0aKFEhISctc6yoj9zltERISiKIqyd+9eJSQkRNm7d6/detnFkrGtrVu32i07YsQIpVu3bpmPN2zYoISEhChr167NNbbGjRsrEydOzFJ+Z0wWi0UJCwtTwsPDFYvFkrlcUlKSEhoaqgwcODCzbP78+UpISIjy0Ucf2W3zjTfeUBo0aKBYrdZcY7qd1WpVTCaTcunSJSUkJET5/vvv7/l1du3apYSEhCgrV660W27RokVKSEiIMn/+/FxjyPg/LFu2LLPsu+++y/Z/duTIESUkJETZsWNHnt+joijKt99+q4SEhChffPFFludMJpPd7XYdO3ZU6tSpo5w9ezbX7VssFsVkMikbNmxQ6tSpo8THxyuKoigJCQlKgwYNlNGjR9stf+DAASUkJMTu85rd/vj0008r7dq1UxITE+3Wf+utt5QGDRpkvk7G/jRixAi75bZu3aqEhIQof/75Z2bZs88+q3Ts2DHX91NSSHduCeDv78/nn3/OV199xYQJE+jUqRPnz5/nvffeo2fPnlm64G73+++/4+3tTbt27ezKw8PDs11epVLRvn37zMdarZaqVasSFBRE3bp1M8v9/PwICAiwG8m4d+9eQkNDKV++vN02+/TpQ2pqapYuyQwpKSkcOXKEhx56CHd398xyHx8fOnbsmON7u5OHhwdfffWV3e2dd97J8/q3U6lUdOrUya6sVq1adu/3559/xt3dnX79+jn0Gnc6d+4c169fp1evXnbd9N7e3jz00EMcOnSI1NRUu3WyizE9Pf2uLfibN28ydepU2rdvT926dalXr15mXUdHR2dZ/m6vk9El3bNnT7vlctrP7kfVqlUpVaoU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",
      "text/plain": [
       "<Figure size 500x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Generate data points\n",
    "x = np.linspace(-10, 10, 500)\n",
    "y_sigmoid = sigmoid(x)\n",
    "y_grad = sigmoid_grad(x)\n",
    "\n",
    "# Create a plot for sigmoid and its gradient\n",
    "plt.figure(figsize=(5, 3))\n",
    "plt.plot(x, y_sigmoid, label='Sigmoid Function', color='blue')\n",
    "plt.plot(x, y_grad, label='Gradient of Sigmoid', color='orange')\n",
    "plt.title('Sigmoid Function and Its Gradient')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
